﻿#include"stdafx.h"
#ifdef LK_
namespace LK
{
	/**@brief 添加类型信息*/
	void ICloneables::AddTypeInfo()
	{
#ifdef LK_REFLECTION_
		//引用反射命名空间
		using namespace Reflection;
		//获取类库的引用
		ptr<TypeLibrary> lib = GetGlobleLibrary();
		//获取类库中的全局命名空间
		PNamespaceNode globle = lib.GetGlobleNamespaceRef();
		//添加LK命名空间
		PNamespaceNode space = globle.FindOrAddNamespace(L"LK.Collection");
		//在LK命名空间中添加ptr<ICloneables>类型
		PTypeNode n = space.FindOrAddTypeNode(L"ICloneables", Type::Make<ptr<ICloneables>>());
		//在ptr<ICloneables>类型节点中添加成员函数
		//n.AddFunction(L"OneRef", &ptr<ICloneables>::OneRef);
		//在ptr<ICloneables>类型节点中添加成员函数
		//n.AddFunction(L"OnePtr", &ptr<ICloneables>::OnePtr);
#endif
	}
	PType ICloneables::GetType()const { return Type::Make<ptr<ICloneables>>(); }

}
#endif